//
//  AuthSDK.h
//  AuthSDK
//
//  Created by jardgechen on 16/8/31.
//  Copyright © 2016年 tencent. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "ValidatorTool.h"

typedef void(^HttpRequestSuccessBlock)(id responseObject);
typedef void(^HttpRequestFailBlock)(NSError *error);

typedef enum{
    //有Ocr，需要用户操作上传身份证正面及反面图片
    AuthTypeOcrAll = 0,
    //有Ocr，需要用户操作上传身份证正面图片
    AuthTypeOcrLight,
    //没有Ocr，需要用户手动输入身份信息
    AuthTypeOcrNone,
    //没有Ocr，需要通过接口传入身份信息
    AuthTypeWithIdInfo
}AuthType;

@protocol AuthSDKDelegate <NSObject>

-(void)onResultBack:(NSDictionary *)result;

@end

@interface AuthSDK : NSObject

/*
 * serverURL:服务器URL，为nil时，使用测试URL
 */
-(instancetype)initWithServerURL:(NSString *)serverURL;

-(NSString *)getServerURL;
-(NSString *)getAppId;

// 设置分配给接入方的appid，secretkey
-(void)setAppId:(NSString *)appId appSecretKey:(NSString *)appSecretKey;
// 设置页面title
-(void)setViewTitle:(NSString *)title;
// 设置验证成功后提示语
-(void)setVerifySuccessTipLable:(NSString *)label1 label2:(NSString *)label2;
// 设置验证失败后提示语
-(void)setVerifyFailTipLable:(NSString *)label;
// 传入协议文案
-(void)setProtocol:(NSString *)protocol;
// 获取测试签名,正式签名要从接入方服务器获取
-(NSString *)getDebugSignature;

/*
 * 跳转首页（用户协议页）
 * name:身份证名字,当AuthType为AuthTypeWithIdInfo时需要传入，其他Type时可为nil
 * idNum:身份证号，当AuthType为AuthTypeWithIdInfo时需要传入，其他Type时可为nil
 * ocrViewController:如果需要跳转接入方自己的OCR页面，需要传入，否则使用sdk带的OCR页面
 * signature:接入方后台生成的签名
 */
-(void)openAuthPage:(AuthType)type name:(NSString*)name idNum:(NSString*)idNum parent:(UIViewController *)vc ocrViewController:(UIViewController *)ocrViewController signature:(NSString*)signature;

/*
 * name:身份证名字,当AuthType为AuthTypeWithIdInfo时需要传入，其他Type时可为nil
 * idNum:身份证号，当AuthType为AuthTypeWithIdInfo时需要传入，其他Type时可为nil
 * signature:接入方后台生成的签名
 */
-(void)startAuth:(AuthType)type name:(NSString*)name idNum:(NSString*)idNum parent:(UIViewController *)vc delegate:(id<AuthSDKDelegate>)delegate signature:(NSString*)signature;
@end

